
//todo
// 假设有k个人质和k个绑匪围成一圈。人质的编号从1到k，绑匪的编号从k+1到2k。
// 从编号1开始，每次从其中选出第m个人(隔m-1选出一人)出列。
// 希望求出m的最小值，使得最先出列的k个人都是绑匪，即都是编号从k+1到2k的人。
#include "iostream"
#include "vector"
#include "unordered_map"
#include "algorithm"

void one_test() {
    int a, b;
    std::cin >> a >> b;
    std::unordered_map<int, bool> mapa;
    std::unordered_map<int, bool> mapb;
    while (a) {
        int c;
        std::cin >> c;

        mapa[c] = true;
        a--;
    }
    while (b) {
        int c;
        std::cin >> c;

        mapb[c] = true;
        b--;
    }
    for (auto k:mapb) {
        auto find = mapa.find(k.first);
        if (find != mapa.end()) {
            mapa.erase(find);
        }
    }
    if (mapa.size() != 0) {
        std::vector<int> vec(mapa.size());
        int vec_i=0;
        for (auto k:mapa) {
            vec[vec_i]=(k.first);
            vec_i++;
//            printf("%d ",k.first);
        }
        std::sort(vec.begin(), vec.end());
        for (auto k:vec) {
//            vec.push_back(k.first);
            printf("%d ", k);
        }
        printf("\n");
    } else {
        printf("NULL\n");
    }
}

int main() {
    int n;//测试次数
//    is_huiwen(1441,10);
    while (std::cin >> n) {
        while (n) {
            one_test();
            n--;
        }
    }
//    while(1){}
    return 0;
}